package com.nextel.project.pedido.mvc;

import com.nextel.project.Configuracion;
import com.nextel.project.pedido.ControlPedido;
import com.nextel.project.pedido.bean.PedidoDetalleBean;
import com.nextel.project.usuario.ControlUsuario;
import com.nextel.ui.OLabel;
import com.nextel.ui.OSoftKey;
import com.nextel.ui.OUILook;
import com.nextel.ui.custom.OTextFieldDecimal;
import javax.microedition.lcdui.Graphics;
import pe.com.nextel.idioma.IdiomaManager;
import pe.com.nextel.main.MVCAction;


/**
 *
 * @author eespinoza
 */
public class MVCProductoDetalle extends MVCAction {

    private OTextFieldDecimal txtField,  txtDescu;
    private OSoftKey cmdSeguir,  cmdBuscar;
    private boolean flagForm; // para que no presione dos veces al momento de buscar
    private byte busquedaMVC;

    public void setBusquedaMVC(byte tipo) {
        busquedaMVC = tipo;
    }

    protected void createView() {

        cmdSeguir = new OSoftKey(Configuracion.BOTON_SEGUIR);
        cmdBuscar = new OSoftKey(Configuracion.BOTON_ATRAS);

        formulario.setTitle(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_PRODUCTO), OUILook.PLAIN_SMALL_TITLE);//"Productos"

        formulario.addSoftKey(cmdSeguir);
        formulario.addSoftKey(cmdBuscar);
    }

    protected void createItems() {

        StringBuffer stf = new StringBuffer();
        PedidoDetalleBean pedidoDetalle = ControlPedido.getInstance().currentPedidoDetalle;
        
        System.out.println("MVCProductoDetalle " + busquedaMVC);
        
        if (pedidoDetalle != null) {
            stf.append(pedidoDetalle.getCodigoArticulo()).append('\n');
            stf.append(pedidoDetalle.getNombreArticulo()).append('\n');

            stf.append(ControlPedido.getInstance().obtenerEtiquetaStock(busquedaMVC) + ": ").append(Configuracion.CambiarSimbolo(pedidoDetalle.getStockArticulo())).append('\n');//Stock

            if (pedidoDetalle.getPrecioBase() != null && !pedidoDetalle.getPrecioBase().equals("")) {
                stf.append(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_PRECIO) + ": " + Configuracion.Moneda + " ").append(Configuracion.CambiarSimbolo(pedidoDetalle.getPrecioBase()));//Precio

            } else {
                stf.append(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_PRECIO) + ": ").append(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_NO_PRECIO).toUpperCase()).append('\n'); //Precio , "NO TIENE PRECIO"

            }
        }

        txtField = new OTextFieldDecimal(10, OUILook.PLAIN_SMALL_TEXT, (Configuracion.SimboloDecimal).charAt(0));
        // System.out.println("Configuracion.SimboloDecimal: "+Configuracion.SimboloDecimal);



        if (!pedidoDetalle.getCantidad().equals("")) {
            txtField.setText(String.valueOf(pedidoDetalle.getCantidad()));
        }

        formulario.add(new OLabel(stf.toString(), OUILook.PLAIN_SMALL_TEXT, formulario.getWidth()));
        formulario.add(new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANT) + ": ", OUILook.PLAIN_SMALL_TEXT));//Cant

        formulario.add(txtField, 1, formulario.getComponentCount() - 1, Graphics.LEFT);

        txtDescu = new OTextFieldDecimal(10, OUILook.PLAIN_SMALL_TEXT, (Configuracion.SimboloDecimal).charAt(0));

        if (!pedidoDetalle.getDescuento().equals("")) {
            txtDescu.setText(String.valueOf(pedidoDetalle.getCantidad()));
        }

        if ("1".equals(ControlUsuario.getInstance().currentUsuario.descuento)) {
            formulario.add(new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_DES) + " %: ", OUILook.PLAIN_SMALL_TEXT));//Des

            formulario.add(txtDescu, 1, formulario.getComponentCount() - 1, Graphics.LEFT);
        }
        flagForm = true;

    }

    public void performAction(OSoftKey c) {
        if (flagForm) {
            flagForm = false;
            System.out.println(txtField.getText());
            if (c == cmdSeguir) {
                try {
                    if (txtField.getText().equals("") || txtField.getText().equals(Configuracion.SimboloDecimal)) {
                        ControlPedido.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_CANTIDAD), this.showScreen()); //"Ingrese la Cantidad"

                        flagForm = true;
                        return;

                    }


                    try {
                        System.out.println("txtField.getText()= " + txtField.getText());
                        new com.mot.iden.math.Float((txtField.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));

                        System.out.println("txtField.getText()= " + txtField.getText());
                        ControlPedido.getInstance().currentPedidoDetalle.setCantidad((txtField.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));

                    //  System.out.println("ControlPedido.getInstance().currentPedidoDetalle..getCantidad = "+ControlPedido.getInstance().currentPedidoDetalle.getCantidad());
                    } catch (Exception e) {
                        ControlPedido.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANTIDAD_INCORRECTA), this.showScreen()); //"Cantidad Incorrecta"

                    }

                    if ("1".equals(ControlUsuario.getInstance().currentUsuario.descuento)) {

                        //System.out.println("txtDescu.getText()= " + txtDescu.getText());
                        ControlPedido.getInstance().currentPedidoDetalle.setDescuento((txtDescu.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));

                    }

                    ControlPedido.getInstance().currentPedidoDetalle.calcularMontoTotal();
                    ControlPedido.getInstance().currentPedido.setDetallePedido(ControlPedido.getInstance().currentPedidoDetalle);
                    destroy();
                    ControlPedido.getInstance().setCurrent(ControlPedido.getInstance().mvcProductoPedido);

                    flagForm = true;

                } catch (Exception e) {
                    flagForm = true;
                    e.printStackTrace();
                    ControlPedido.getInstance().showError(e + "", formulario);
                }

            } else if (c == cmdBuscar) {

                flagForm = false;
                destroy();

                ControlPedido.getInstance().mvcProductoBusqueda.setBusquedaMVC(busquedaMVC);
                ControlPedido.getInstance().setCurrent(ControlPedido.getInstance().mvcProductoBusqueda);

            }

        }
    }
}
